package it.prova.uml.value;

import java.util.List;

import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
import org.eclipse.jst.jsf.metadataprocessors.IType;

public interface ITypeDescriptor {
	/**
	 * @param type 
	 * The IType must be set after the ITypeDescriptor is constructed
	 */
	public void setTypeExtension(IType type);
	/**
	 * @return IType
	 * Must not be null
	 */
	public IType getTypeExtension();

	/**
	 * @param processingFeature interface class
	 * @return List of <code>IMetaDataEnabledFeature</code>s that support the
	 * specified processingFeature interface.  
	 */
	public List<IMetaDataEnabledFeature> getFeatureAdapters(@SuppressWarnings("rawtypes") Class processingFeature);
}
